// pages/enterprise_register/enterpriseRegister.ts

const app = getApp()  // 获取App实例
Page({

  /**
   * 页面的初始数据
   */
  data: {
    "phone": "",
    "zpass": "",
    "corpid": "",
    "clicense": [],
    "corp_name": "",
    "caddr": "",
    "code": "",
    yespassword: "",
    fileList: [],
  },
  //获取验证码按钮
  getyanzheng() {
    if (!this.data.phone) {
      this.showerror('请输入管理账号')
      return
    }
    if (this.data.daojishi > 0) {
      wx.showToast({
        title: '请勿过于频繁获取验证码',
        icon: 'error',
        duration: 1500
      })
      return
    }
    app.axios(
      'user',
      {
        op: "ajaxSendCode",
        "phone": this.data.phone,
      },
      false
    )
      .then(res => {
        this.setData({
          daojishi: 30
        })

        this.setData({
          time: setInterval(() => {

            this.setData({
              daojishi: this.data.daojishi - 1
            })
            if (this.data.daojishi <= 0) {
              this.setData({
                daojishi: 0
              })
              if (this.data.time) {
                clearInterval(this.data.time)
              }
            }
            console.log(this.data.daojishi)
          }, 1000)
        })
        wx.showToast({
          title: '验证码发送成功',
          icon: 'success',
          duration: 1500
        })
      });

  },
  getdata(array) {
    this.setData({
      clicense: array,
    });
  },
  giveup(e) {
    console.log(e.detail.returnval)
    console.log(" e.detail.returnval")
    this.setData({
      clicense: e.detail.returnval,
    });
  },
  async chackimg() {
    // 9 表示最多可以一次性选择多少张
    let returnval = await app.globalData.upimgJs.chackimg(9)
    console.log(returnval)
    this.setData({
      clicense: returnval,
    });
  },
  // 上传后的回调函数
  afterRead(event) {
    const { file } = event.detail;

    // 单文件上传情况
    if (!Array.isArray(file)) {
      this.uploadFile(file);
      return;
    }

    // 多文件上传情况
    for (let i = 0; i < file.length; i++) {
      this.uploadFile(file[i]);
    }
  },

  // 实际的上传方法
  uploadFile(file) {
    // 这里可以添加文件类型和大小校验
    if (file.size > 5 * 1024 * 1024) {
      wx.showToast({ title: '文件大小不能超过5MB', icon: 'none' });
      return;
    }

    const acceptTypes = ['image/jpeg', 'image/png'];
    if (!acceptTypes.includes(file.type)) {
      wx.showToast({ title: '只支持jpg、png格式', icon: 'none' });
      return;
    }

    // 显示上传中状态
    wx.showLoading({ title: '上传中...' });

    // 实际的上传逻辑
    wx.uploadFile({
      url: '你的服务器上传接口',
      filePath: file.url,
      name: 'file',
      formData: {
        // 可以添加额外的表单数据
        'userId': '123'
      },
      success: (res) => {
        // 上传成功，res.data是服务器返回的数据
        const response = JSON.parse(res.data);
        const fileKey = response.data.fileKey; // 假设服务器返回了fileKey

        // 更新fileList，添加fileKey
        const { fileList = [] } = this.data;
        const index = fileList.findIndex(item => item.url === file.url);
        if (index !== -1) {
          fileList[index].key = fileKey;
          this.setData({ fileList });
        }

        wx.showToast({ title: '上传成功' });
      },
      fail: (err) => {
        wx.showToast({ title: '上传失败', icon: 'none' });
        console.error('上传失败:', err);
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  // 如果需要删除文件
  onDelete(event) {
    const { index } = event.detail;
    const { fileList } = this.data;

    // 可以在这里调用接口删除服务器上的文件
    const deletedFile = fileList[index];
    if (deletedFile.key) {
      // 调用删除接口
      wx.request({
        url: '你的文件删除接口',
        method: 'POST',
        data: { fileKey: deletedFile.key },
        success: () => {
          console.log('服务器文件删除成功');
        }
      });
    }

    // 更新本地文件列表
    fileList.splice(index, 1);
    this.setData({ fileList });
  },

  changechack() {
    this.setData({
      ischack: !this.data.ischack
    })
  },
  delthis(e) {
    const index = e.currentTarget.dataset.index;
    let imglist = this.data.clicense
    imglist.splice(index, 1)
    this.setData({
      clicense: imglist
    })
  },
  showerror(content) {
    wx.showToast({
      title: content,
      icon: 'error',
      duration: 1500
    })
  },
  register() {
    console.log(this.data.clicense.join(","))
    if (!this.data.ischack) {
      this.showerror('请阅读并同意用户协议')
      return
    }
    if (!this.data.corp_name) {
      this.showerror('请输入用户名')
      return
    }
    if (!this.data.phone) {
      this.showerror('请输入管理账号')
      return
    }
    if (this.data.clicense == 0) {
      this.showerror('请上传资质证书')
      return
    }
    if (!this.data.code) {
      this.showerror('请输入验证码')
      return
    }
    // 判断两次密码是否相同
    if (this.data.yespassword != this.data.zpass) {
      this.showerror('两次输入的密码必须相同')
      return
    }
    app.axios(
      'user',
      {
        op: "ajaxComReg",
        "phone": this.data.phone,
        "zpass": this.data.zpass,
        "corpid": this.data.corpid,
        "clicense": this.data.clicense.join(","),
        "corp_name": this.data.corp_name,
        "caddr": this.data.caddr,
        "code": this.data.code,
        yespassword: this.data.yespassword,
      },
      false
    )
      .then(res => {
        if (res.code) {
          this.gopage(res.item[0])
        } else {
          wx.showToast({
            title: '注册失败',
            duration: 1500
          })
        }
      });
  },

  gopage(items) {
    // 创建session对象
    const sessionData = {
      mkey: items.mkey,
      userid: items.userid,
      corpid: items.corpid,
      corpName: items.corpName,
      zzstatus: items.status
    };

    // 双重存储：内存 + 本地存储
    app.globalData.session = sessionData;
    wx.setStorageSync('session', sessionData);
    wx.showToast({
      title: '注册成功,即将跳转',
      icon: 'success',
      duration: 1500
    })
    setTimeout(() => {
      app.navigateTo('/pages/index/index', 'switchTab')
    }, 2000);
  },
})